﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Example
{
    /// <summary>
    /// 在 wikidoc 语法中，换行本身并不构成一个段落，
    /// 因此这一行和上一行在输出中是同一段落。
    /// 
    /// 要形成一个段落，必须要添加一个空白行，
    /// 就像这个段落和上面那个段落间的空白行一样。
    /// </summary>
    public class Class1
    {
        /// <summary>
        /// 数字列表的语法 1，数字后添加小数点
        ///  1. 列表项一
        ///  1. 列表项二
        ///  3. 列表项三
        /// 可以看到，数字本身是多少并没有关系的。
        /// </summary>
        public void NumberList1()
        {
            
        }

        /// <summary>
        /// 数字列表的语法 1，数字后添加中文顿号
        ///  1、 列表项一
        ///  1、 列表项二
        ///  3、 列表项三
        /// </summary>
        public void NumberList2()
        {
            
        }

        /// <summary>
        /// 符号列表，一般是以一个或多个空格开头，跟一个列表标志字符，后跟一个空格以及列表内容，例如
        ///  * 列表项一
        ///  × 列表项二
        /// 可以用作列表标志字符的字符包括 星号(*)，中文星号(×)，减号(-)，中文破折号(—)
        /// </summary>
        public void BulletList()
        {
            
        }

        /// <summary>
        /// 如果一个列表项比较长，可以换行写为多行，后续行必须缩进多余列表符号对应的列即可，如
        ///  × 假设这是一个很长的列表行，
        ///     我们从这里开始第二行，
        ///     然后是第三行，这三行在输出时是作为一个列表项对待的。
        ///  × 这一行使用了列表定义符号，所以将被作为第二个列表项。
        ///     这一项也可以分为两行来写。
        /// 
        ///  × 这将成为第三项，可以看出，可以用空行来分割列表项，有时候这样更容易阅读。
        /// </summary>
        public void MultilLineListItem()
        {
            
        }

        /// <summary>
        /// 列表项可以嵌套，即一个列表项下可以在细分，只要缩进随意的空格即可，例如
        ///  × 这是第一级列表的第一项
        ///     × 第一项的嵌套列表项，这是第一小项
        ///     × 这是第二小项
        ///  × 从这里开始，缩进级别和上级相同，所以这是第一级列表的第二项
        /// </summary>
        public void ListIndent()
        {
            
        }

        /// <summary>
        /// 在三个连续的花括号 {{{ }}} 中的部分被解析为代码段，例如
        /// {{{
        /// ....
        /// }}}
        /// 起始和终止的花括号必须独立一行
        /// </summary>
        public void Code()
        {
            
        }

        /// <summary>
        /// 对代码段的解析，可以自定义一些解析器，目前实行了一个 csv 表格解析器，可用来表示表格
        /// 如：
        /// {{{ csv ，
        /// row1，col2，col3
        /// row2，col2，col3
        /// }}}
        /// 起始的三个花括号后用一个空格标志解析器名称 csv，然后是解析器参数，csv 解析器可带一个参数
        /// 表示使用什么字符作为字段分隔符，例如上例中使用中文的逗号(，)
        /// </summary>
        public void CsvTable()
        {
            
        }
    }
}
